package Controller;

import java.util.ArrayList;
import java.util.List;

import Beans.ItemPlanProduccionBean;
import DAO.HibernateItemPlanProduccionDAO;
import DTO.ItemPlanProduccionDTO;
import DTO.SemielaboradoDTO;
import Model.ItemPlanProduccion;

public class AdministradorItemPlanProduccion {
private static AdministradorItemPlanProduccion instancia;
	
	private AdministradorItemPlanProduccion(){
		
	}
	
	public static AdministradorItemPlanProduccion getInstancia(){
		if(instancia==null){
			instancia=new AdministradorItemPlanProduccion();
		}
		return instancia;
	}

	public List<ItemPlanProduccionBean> fromModelToBean(List<ItemPlanProduccion> itemPlanProduccions) {
		List<ItemPlanProduccionBean> itemPlanProduccionsBean=new ArrayList<ItemPlanProduccionBean>();
		for (ItemPlanProduccion itemPlanProduccion : itemPlanProduccions) {
			itemPlanProduccionsBean.add(fromModelTOBean(itemPlanProduccion));
		}
		return itemPlanProduccionsBean;
	}

	public ItemPlanProduccionBean fromModelTOBean(ItemPlanProduccion itemPlanProduccion) {
		ItemPlanProduccionBean itemPlanProduccionBean=null;
		if(itemPlanProduccion!=null){
		itemPlanProduccionBean=new ItemPlanProduccionBean();
		itemPlanProduccionBean.setCantidad(itemPlanProduccion.getCantidad());
		itemPlanProduccionBean.setCantidadFinalizada(itemPlanProduccion.getCantidadFinalizada());
		itemPlanProduccionBean.setId(itemPlanProduccion.getId());
		itemPlanProduccionBean.setItem(AdministradorProducto.getInstancia().fromModelTOBean(itemPlanProduccion.getItem()));
		itemPlanProduccionBean.setItems(AdministradorItemReposicion.getInstancia().fromModelTOBean(itemPlanProduccion.getItems()));
		}
		return itemPlanProduccionBean;
	}

	public List<ItemPlanProduccion> fromDTOTOModel(List<ItemPlanProduccionDTO> itemPlanProduccionsDTO) {
		List<ItemPlanProduccion> itemPlanProduccions=new ArrayList<ItemPlanProduccion>();
		for (ItemPlanProduccionDTO itemPlanProduccionDTO : itemPlanProduccionsDTO) {
			itemPlanProduccions.add(fromDTOTOModel(itemPlanProduccionDTO));
		}
		return itemPlanProduccions;
	}
	public ItemPlanProduccion fromDTOTOModel(ItemPlanProduccionDTO itemPlanProduccionDTO) {
		ItemPlanProduccion itemPlanProduccion=null;
		if(itemPlanProduccionDTO!=null){
		itemPlanProduccion=new ItemPlanProduccion();
		itemPlanProduccion.setCantidad(itemPlanProduccionDTO.getCantidad());
		itemPlanProduccion.setCantidadFinalizada(itemPlanProduccionDTO.getCantidadFinalizada());
		itemPlanProduccion.setId(itemPlanProduccionDTO.getId());
		itemPlanProduccion.setItem(AdministradorProducto.getInstancia().fromDTOTOModel(itemPlanProduccionDTO.getItem()));
		itemPlanProduccion.setItems(AdministradorItemReposicion.getInstancia().fromDTOTOModel(itemPlanProduccionDTO.getItems()));
		}
		return itemPlanProduccion;
	}
	
	
	public List<ItemPlanProduccionDTO> fromModelTODTO(List<ItemPlanProduccion> itemPlanProduccions) {
		List<ItemPlanProduccionDTO> itemPlanProduccionsDTO=new ArrayList<ItemPlanProduccionDTO>();
		for (ItemPlanProduccion itemPlanProduccion : itemPlanProduccions) {
			itemPlanProduccionsDTO.add(fromModelTODTO(itemPlanProduccion));
		}
		return itemPlanProduccionsDTO;
	}
	public ItemPlanProduccionDTO fromModelTODTO(ItemPlanProduccion itemPlanProduccion) {
		ItemPlanProduccionDTO itemPlanProduccionDTO=null;
		if(itemPlanProduccion!=null){
			itemPlanProduccionDTO=new ItemPlanProduccionDTO();
			itemPlanProduccionDTO.setCantidad(itemPlanProduccion.getCantidad());
			itemPlanProduccionDTO.setCantidadFinalizada(itemPlanProduccion.getCantidadFinalizada());
			itemPlanProduccionDTO.setId(itemPlanProduccion.getId());
			itemPlanProduccionDTO.setItem((SemielaboradoDTO) AdministradorProducto.getInstancia().fromModelTODTO(itemPlanProduccion.getItem()));
			itemPlanProduccionDTO.setItems(AdministradorItemReposicion.getInstancia().fromModelTODTO(itemPlanProduccion.getItems()));
		}
		return itemPlanProduccionDTO;
	}

	public List<ItemPlanProduccion> fromBeanTOModel(List<ItemPlanProduccionBean> itemPlanProduccionsBean) {
		List<ItemPlanProduccion> itemPlanProduccions=new ArrayList<ItemPlanProduccion>();
		for (ItemPlanProduccionBean itemPlanProduccionBean : itemPlanProduccionsBean) {
			itemPlanProduccions.add(fromBeanTOModel(itemPlanProduccionBean));
		}
		return itemPlanProduccions;
	}

	public ItemPlanProduccion fromBeanTOModel(ItemPlanProduccionBean itemPlanProduccionBean) {
		ItemPlanProduccion itemPlanProduccion=null;
		if(itemPlanProduccionBean!=null){
			itemPlanProduccion=new ItemPlanProduccion();
			itemPlanProduccion.setCantidad(itemPlanProduccionBean.getCantidad());
			itemPlanProduccion.setCantidadFinalizada(itemPlanProduccionBean.getCantidadFinalizada());
			itemPlanProduccion.setId(itemPlanProduccionBean.getId());
			itemPlanProduccion.setItem(AdministradorProducto.getInstancia().fromBeanTOModel(itemPlanProduccionBean.getItem()));
			itemPlanProduccion.setItems(AdministradorItemReposicion.getInstancia().fromBeanTOModel(itemPlanProduccionBean.getItems()));
		}
		return itemPlanProduccion;
	}

	public void grabarItemPlanProduccion(ItemPlanProduccion itemPlanProduccion) {
		ItemPlanProduccionBean fb=fromModelTOBean(itemPlanProduccion);
		HibernateItemPlanProduccionDAO.getInstancia().grabarItemPlanProduccion(fb);
		
	}
	
	public ItemPlanProduccion buscarItemPlanProduccion(ItemPlanProduccion f){
		ItemPlanProduccionBean fb=fromModelTOBean(f);
		fb=HibernateItemPlanProduccionDAO.getInstancia().buscarItemPlanProduccion(fb);
		return fromBeanTOModel(fb);
	}

	public List<ItemPlanProduccionBean> fromModelTOBean(
			List<ItemPlanProduccion> items) {
		List<ItemPlanProduccionBean> itemsb=new ArrayList<ItemPlanProduccionBean>();
		for (ItemPlanProduccion itemPlanProduccion : items) {
			ItemPlanProduccionBean itemb=fromModelTOBean(itemPlanProduccion);
			itemsb.add(itemb);
		}
		return itemsb;
	}

	
}
